Skip to content

ci: fix uv install, split Python/frontend workflows, fix TS errors#1

Merged
EngineerProjects merged 5 commits into
mainfrom
ci/fix-workflows
Jun 11, 2026
Merged

ci: fix uv install, split Python/frontend workflows, fix TS errors#1
EngineerProjects merged 5 commits into
mainfrom
ci/fix-workflows

Conversation

@EngineerProjects

Copy link
Copy Markdown
Owner

Summary

  • CI Python (ci-python.yml): remplace uv pip install --system (bloqué par PEP 668 sur Ubuntu 24.x) par le pattern uv venv + uv pip install --python + GITHUB_PATH — testé localement (200 passed, ruff clean)
  • CI Frontend (ci-frontend.yml): npm ci + tsc --noEmit + vite build — build propre vérifié en local
  • Suppression de l'ancien ci.yml monolithique avec les jobs Docker
  • Fix TS SessionStatus: ajout de AWAITING_APPROVAL: 'awaiting_approval' pour couvrir le statut du flux d'approbation
  • Fix TS App.tsx: annotation sessionId: string pour accepter crypto.randomUUID() (branded) et la chaîne retournée par l'API

Test plan

  • CI Python passe (lint + test avec postgres service)
  • CI Frontend passe (tsc + vite build)
  • Aucun job Docker dans les workflows

🤖 Generated with Claude Code

- Add Watch Profiles React page (full CRUD: create, update, delete, run now)
  with schedule config, email group multi-select, sidebar nav entry
- Replace in-memory polling scheduler with APScheduler + PostgreSQL job store;
  falls back to polling loop if apscheduler unavailable
- Add human-in-the-loop approval: orchestrator pauses after research phase
  when autonomous=False and quality below threshold; session saved as
  awaiting_approval with checkpoint; new /approve and /reject endpoints
  resume or cancel synthesis; SSE approval_required event drives frontend
  banner with Approve/Reject buttons in SessionDetailPage
- Add ApiService.approveSession and rejectSession methods
…estrator, CI no-push

- Planner enrichment: query SearchMemoryTool before building the plan prompt;
  inject previously covered topics and article titles so LLM avoids repeating
  already-researched angles across sessions
- POST /orchestrator/sessions: pre-create a pending session record and return
  a stable session_id; frontend now obtains the ID synchronously, navigates
  to the detail page immediately, then opens the SSE stream — eliminates the
  race where session_id was only known after the first SSE event
- Newsletter unified: /newsletter/generate now internally calls OrchestratorAgent
  instead of the standalone newsletter agent, giving newsletters the full
  plan → research → synthesis → email pipeline
- CI: remove GHCR push (docker-build job now build-only, no login step needed)
…ation

- Fix LangGraph deprecation warnings: replace config_schema= with
  context_schema= in both StateGraph builders (deep_research graph);
  type all node config params as Optional[RunnableConfig] instead of
  Optional[dict] in deep_research/nodes.py (5 nodes) and orchestrator
  synthesizer node
- Remove Redis: the service was declared in docker-compose.yml and
  .env.example but never used in any Python code; dropping it simplifies
  the stack and eliminates a spurious depends_on health-check blocker
- Inter-session dedup in collector: before ranking, query the Article
  table for URLs already persisted from prior sessions; fresh articles
  are ranked first; known articles are appended only if nothing new was
  found, preventing empty syntheses when the search space is exhausted
…cker jobs

- ci-python.yml: lint (ruff) + test (pytest + postgres service) using uv
  for fast installs; path filters so it only runs on Python/test changes
- ci-frontend.yml: npm ci + tsc --noEmit + vite build; path filters so it
  only runs on frontend changes
- Remove docker-build and docker-smoke jobs entirely — they required postgres,
  redis, full compose stack and were the main source of flakiness
- ci-python.yml: replace uv pip install --system (fails on PEP 668 Ubuntu)
  with uv venv + uv pip install --python + GITHUB_PATH injection; tested
  locally (200 passed, ruff clean)
- frontend/src/types/index.ts: add AWAITING_APPROVAL to SessionStatus enum
  so session.status comparison compiles without TS2367
- frontend/src/App.tsx: annotate sessionId as string to accept both
  crypto.randomUUID() (branded type) and API-returned string (TS2322)
- Both npm build and tsc --noEmit now pass cleanly
@EngineerProjects EngineerProjects merged commit 76f9314 into main Jun 11, 2026
3 checks passed
@EngineerProjects EngineerProjects deleted the ci/fix-workflows branch June 11, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant